#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

//void Test1()
//{
//    vector<vector<int>> vv;
//    vv.reserve(10);
//    vv[0].resize(1, 0);
//    for (int i = 0; i < 10; i++)
//    {
//        vv[i].resize(i + 1, 0);
//        vv[i][0] = vv[i][i] = 1;
//    }
//    for (int i = 0; i < 10; i++)
//    {
//        for (int j = 0; j < i + 1; j++)
//        {
//            if (vv[i][j] != 1)
//            {
//                vv[i][j] = vv[i - 1][j - 1] + vv[i - 1][j];
//            }
//        }
//    }
//}

//class Solution {
//public:
//    int MoreThanHalfNum_Solution(vector<int> numbers) {
//        auto fast = numbers.begin();
//        auto slow = numbers.begin();
//        size_t count = 1;
//        while (slow != numbers.end())
//        {
//            while (fast != numbers.end())
//            {
//                if (*fast == *slow)
//                {
//                    count++;
//                }
//                fast++;
//            }
//            if (count > numbers.size() / 2)
//            {
//                return *slow;
//            }
//            slow++;
//            count = 1;
//        }
//        return 0;
//    }
//};

//class Solution {
//public:
//    int singleNumber(vector<int>& nums) {
//        sort(nums.begin(), nums.end());
//        auto fast = nums.begin();
//        auto slow = nums.begin();
//        while (fast != nums.end())
//        {
//            if (*fast != *slow)
//            {
//                if (fast - slow == 1)
//                    return *slow;
//                else
//                {
//                    slow = fast;
//                    if (slow == nums.end() - 1)
//                    {
//                        return *slow;
//                    }
//                }
//            }
//            else
//            {
//                fast++;
//            }
//        }
//    }
//};

class Solution {
    vector<string> str_num = { "","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };
public:
    void combine(int num, string& digits, string str, vector<string>& ret)
    {
        if (num == digits.size())
        {
            ret.push_back(str);
            return;
        }
        for (int i = 0; i < str_num[digits[num] - '0'].size(); i++)
        {
            combine(num + 1, digits, str + str_num[digits[num] - '0'][i], ret);
        }
    }
    vector<string> letterCombinations(string digits)
    {
        vector<string> ret;
        string str;
        combine(0, digits, str, ret);
        return ret;
    }
};

void Test1()
{
	Solution so;
    string s("23");
    vector<string> v1 = so.letterCombinations(s);
    for (auto e : v1)
    {
        cout << e << " ";
    }
    cout << endl;
}

void Test2()
{
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
    auto it = v.begin();
    while (it != v.end())
    {
        if (*it % 2 == 0)
        {
            v.erase(it);
        }
        else
        {
            it++;
        }
    }

    for (auto e : v)
    {
        cout << e << " ";
    }
    cout << endl;


}

int main()
{
	Test2();
	return 0;
}